; Music of Mystery of Arkham Manor (1987) (Melbourne House)
; Ripped by Megachur the 06/04/2008

	write "MYSTEOAM.BIN"

music_date_rip	equ &0648
music_adr	equ &00ae
first_theme	equ 0
last_theme	equ 0

	read "music_header_v1_0.asm"
	
;
.play_music
;
	di
	call l00bd
	ld e,#00
	ld b,#0b
	call l0323
	call l01c7
	ret
.l00bd
	ld hl,l0415
	ld b,#3f
	ld (hl),b
	inc hl
	ld b,#00
	call l0228
	ld hl,l041c
	ld (hl),b
	inc hl
	call l0228
	ld hl,l0423
	ld (hl),b
	inc hl
	call l0228
	inc hl
	call l0228
	ld hl,l03f6
	call l012e
	call l01f9
	ld hl,l03ea
	call l012e
	ld a,#01
	call l0151
	ld hl,l03ee
	call l012e
	ld a,#02
	call l0151
	ld hl,l03f2
	call l012e
	ld a,#03
	call l0151
	call l0261
	ld hl,l040e
	ld e,(hl)
	inc hl
	ld d,(hl)
	inc hl
	call l011f
	inc hl
	inc hl
	call l011f
	dec hl
	dec hl
	ld e,(hl)
	inc hl
	ld d,(hl)
	inc hl
.l011f
	ld a,(hl)
	cp e
	ret nz
	inc hl
	ld a,(hl)
	dec hl
	cp d
	ret nz
	inc de
	ld (hl),e
	inc hl
	ld (hl),d
	dec hl
	dec de
	ret
.l012e
	ld e,(hl)
	inc hl
	ld d,(hl)
	inc de
.l0132
	ld a,(de)
	cp #3f
	jr z,l0149
	ld b,a
	ld (hl),d
	dec hl
	ld (hl),e
	add a
	ld e,a
	ld d,#00
	ld hl,l036e
	add hl,de
	ld d,(hl)
	inc hl
	ld e,(hl)
	ex de,hl
	ld a,b
	ret
.l0149
	inc hl
	ld e,(hl)
	inc hl
	ld d,(hl)
	dec hl
	dec hl
	jr l0132
.l0151
	ld c,a
	ld a,b
	cp #36
	ld a,h
	jr nc,l0191
	or l
	ret z
	ld a,c
	push hl
	add a
	dec a
	ld hl,l040e
	ld d,#00
	ld e,a
	add hl,de
	pop de
	ld (hl),e
	dec hl
	ld (hl),d
	ld hl,l0420
	ld e,c
	ld d,#00
	dec e
	add hl,de
	ld a,(hl)
	dec hl
	dec hl
	dec hl
	ld (hl),a
	ld hl,l040b
	add hl,de
	ld a,(hl)
	ld hl,l0416
	add hl,de
	ld (hl),a
	ld hl,l0415
	ld a,c
	add #ff
	add a
	add a
	add a
	or #86
	ld (l018f),a
.l018f equ $ + 1
	res 2,(hl)
	ret
.l0191
	ld (l0414),a
	ld a,l
	and #f0
	or a
	jr z,l01b8
	rrca
	rrca
	rrca
	rrca
.l019e
	ld hl,l041d
	ld d,#00
	ld e,c
	add hl,de
	dec hl
	ld (hl),a
	ld hl,l0415
	ld a,c
	add #02
	add a
	add a
	add a
	or #86
	ld (l01b6),a
.l01b6 equ $ + 1
	res 0,(hl)
	ret
.l01b8
	ld a,l
	and #0f
	ld hl,l0416
	ld d,#00
	ld e,c
	add hl,de
	dec hl
	ld (hl),a
	xor a
	jr l019e
.l01c7
	ld a,#01
	call l0332
	ld a,#02
	call l0332
	ld a,#03
	call l0332
	call l02dc
	ld hl,l041c
	inc (hl)
	ld a,(hl)
	cp #10
	jp z,l01f2
	call l01f2
	ld a,(l042a)
.l01e9
	ld b,#64
.l01eb
	djnz l01eb
	inc a
	jr nz,l01e9
	jr l01c7
.l01f2
	ld e,#00
	ld b,#06
	jp l0323
.l01f9
	ld a,b
	and #03
	ld c,a
	bit 2,b
	jr nz,l0206
	bit 3,b
	jr nz,l022e
	ret
.l0206
	bit 3,b
	jr nz,l0244
	ld a,#f0
	and b
	rrca
	rrca
	rrca
	rrca
	ld b,a
	xor a
	cp c
	ld hl,l040b
	jr z,l0221
	ld d,a
	ld e,c
	add hl,de
	dec hl
	ld (hl),b
	ld b,a
	jr l0252
.l0221
	call l0228
	ld b,#00
	jr l025c
.l0228
	ld (hl),b
	inc hl
	ld (hl),b
	inc hl
	ld (hl),b
	ret
.l022e
	ld a,c
	ld (l042b),a
	ld a,#f0
	and b
	rlca
	rlca
	rlca
	bit 4,b
	ld b,a
	jr z,l0240
	xor #7f
	inc a
.l0240
	ld (l0423),a
	ret
.l0244
	bit 4,b
	ret nz
	ld a,#e0
	and b
	rlca
	rlca
	rlca
	ld b,a
	xor a
	cp c
	jr z,l025c
.l0252
	ld d,#00
	ld e,c
	ld hl,l0420
	add hl,de
	dec hl
	ld (hl),b
	ret
.l025c
	ld hl,l0420
	jr l0228
.l0261
	ld hl,l0423
	xor a
	cp (hl)
	ret z
	ld b,(hl)
	ld a,(l042b)
	or a
	jr z,l028b
	ld ix,l040e
	ld hl,l03ea
	dec a
	jr z,l02a6
	ld hl,l03ee
	inc ix
	inc ix
	dec a
	jr z,l02a6
	ld hl,l03f2
	inc ix
	inc ix
	jr l02a6
.l028b
	ld hl,l03ea
	ld ix,l040e
	call l02a6
	inc ix
	inc ix
	ld hl,l03ee
	call l02a6
	inc ix
	inc ix
	ld hl,l03f2
.l02a6
	ld e,(hl)
	inc hl
	ld d,(hl)
	ld a,(de)
	add b
	cp #35
	ret nc
	ld d,#00
	add a
	ld e,a
	ld hl,l036e
	add hl,de
	ld e,(hl)
	inc hl
	ld d,(hl)
	ld l,(ix+#00)
	ld h,(ix+#01)
	ex de,hl
	xor a
	sbc hl,de
	ld a,l
	ld l,h
	ld h,a
	xor a
	push bc
	ld b,#04
.l02ca
	or a
	rr h
	rr l
	rr a
	djnz l02ca
	or h
	ld (ix+#16),a
	ld (ix+#17),l
	pop bc
	ret
.l02dc
	ld hl,l040e
	ld de,l0424
	ld b,#03
.l02e4
	ld a,(hl)
	push hl
	inc hl
	ld h,(hl)
	ld l,a
	ex de,hl
	ld a,(hl)
	inc hl
	push hl
	ld h,(hl)
	ld l,a
	add hl,de
	jr nc,l02f3
	inc hl
.l02f3
	ld c,h
	ld a,l
	pop de
	inc de
	pop hl
	ld (hl),a
	inc hl
	ld (hl),c
	inc hl
	djnz l02e4
	ret
	ld de,#073f
.l0302
	push bc
	ld b,#f4
	out (c),d
	ld b,#f6
	in a,(c)
	or #c0
	out (c),a
	and #3f
	out (c),a
	ld b,#f4
	out (c),e
	ld b,#f6
	ld c,a
	or #80
	out (c),a
	out (c),c
	pop bc
	inc d
	ret
.l0323
	ld hl,l040e
	ld d,#00
	add hl,de
	ld d,e
.l032a
	ld e,(hl)
	inc hl
	call l0302
	djnz l032a
	ret
.l0332
	ld hl,l0416
	dec a
	ld c,a
	ld e,a
	ld d,#00
	add hl,de
	ex de,hl
	ld l,#07
	add hl,de
	ld a,(hl)
	or a
	ret z
	push de
	ld hl,l0435
	dec a
	rla
	rla
	rla
	rla
	ld d,#00
	ld e,a
	add hl,de
	ld a,(l041c)
	ld e,a
	add hl,de
	ld a,(hl)
	pop hl
	ld b,(hl)
	cp b
	ret z
	ld (hl),a
	ld a,c
	add #08
	ld e,a
	ld b,#01
	jr l0323
	;
.init_music
.l0362
	;
	ld hl,l03fa
	ld de,l03ea
	ld bc,#000c
	ldir
	ret
.l036e
	dw #03bc,#0386,#0353,#0324
	dw #02f6,#02cc,#02a4,#027e
	dw #025a,#0238,#0218,#01fa
	dw #01de,#01aa,#0192,#017b
	dw #0166,#0152,#013f,#012d
	dw #011c,#010c,#00fd,#00ef
	dw #00e1,#00d5,#00c9,#00be
	dw #00b3,#00a9,#009f,#0096
	dw #008e,#0086,#007f,#0077
	dw #0071,#006a,#0064,#005f
	dw #0059,#0054,#0050,#004b
	dw #0047,#0043,#003f,#003c
	dw #0038,#0035,#0032,#002f
	dw #0000
	db #04,#08,#14,#08,#1f,#08,#09,#70
	db #1f,#70,#0a,#07,#11,#07,#1c,#07
.l03ee equ $ + 6
.l03ea equ $ + 2
	db #09,#40,#c3,#05,#c4,#05,#44,#06
.l03f6 equ $ + 6
.l03f2 equ $ + 2
	db #45,#06,#c3,#07,#c4,#07,#42,#09
.l03fa equ $ + 2
	db #43,#09,#c3,#05,#c4,#05,#44,#06
	db #45,#06,#c3,#07,#c4,#07,#00,#00
.l040e equ $ + 6
.l040b equ $ + 3
	db #00,#00,#00,#0b,#0b,#0b,#aa,#01
.l0416 equ $ + 6
.l0415 equ $ + 5
.l0414 equ $ + 4
	db #be,#00,#9f,#00,#2f,#38,#0b,#0b
.l041d equ $ + 5
.l041c equ $ + 4
	db #0b,#00,#00,#00,#10,#00,#00,#00
.l0424 equ $ + 4
.l0423 equ $ + 3
.l0420
	db #00,#00,#00,#00,#00,#00,#00,#00
.l042b equ $ + 3
.l042a equ $ + 2
	db #00,#00,#e2,#02,#01,#0b,#00,#0e
.l0435 equ $ + 5
	db #1c,#1f,#02,#02,#08,#08,#09,#0c
	db #0c,#0c,#0c,#0c,#0c,#0c,#0c,#0c
	db #0c,#0b,#0a,#09,#08,#0f,#0e,#0d
	db #0c,#0b,#0a,#09,#08,#07,#06,#05
	db #04,#03,#02,#01,#00,#03,#05,#07
	db #08,#0a,#0c,#0e,#0e,#0e,#0c,#09
	db #08,#07,#06,#04,#02,#0d,#0c,#0b
	db #0a,#0a,#09,#09,#08,#08,#07,#07
	db #06,#05,#04,#03,#02,#0b,#0f,#0f
	db #0f,#0e,#0e,#0e,#0e,#0e,#0e,#0e
	db #0e,#0e,#0e,#0c,#0a,#0f,#0e,#0d
	db #0c,#0b,#0a,#0a,#0a,#0a,#0a,#0a
	db #0b,#0c,#0d,#0e,#0f,#0d,#0b,#09
	db #08,#07,#0a,#0a,#0a,#0a,#07,#07
.l04a7 equ $ + 7
.l04a6 equ $ + 6
	db #08,#09,#0a,#0b,#0b,#14,#00,#00
.l04a9 equ $ + 1
	db #00,#00,#00,#00,#00,#00,#00,#00
.l04b5 equ $ + 5
.l04b3 equ $ + 3
	db #00,#00,#00,#00,#00,#00,#00,#00
.l04bf equ $ + 7
.l04bd equ $ + 5
.l04bc equ $ + 4
	db #00,#00,#00,#00,#00,#00,#00,#f0
	db #f3,#f1,#89,#86,#83,#8b,#8a,#f2
	db #e0,#87,#88,#85,#81,#82,#80,#10
	db #5b,#0d,#5d,#84,#ff,#5c,#ff,#5e
	db #2d,#40,#70,#3b,#3a,#2f,#2e,#30
	db #39,#6f,#69,#6c,#6b,#6d,#2c,#38
	db #37,#75,#79,#68,#6a,#6e,#20,#36
	db #35,#72,#74,#67,#66,#62,#76,#34
	db #33,#65,#77,#73,#64,#63,#78,#31
	db #32,#fc,#71,#09,#61,#fd,#7a,#0b
	db #0a,#08,#09,#58,#5a,#ff,#7f
.l050f
	ld hl,l04a9		; keyboard test
	ld de,l04b3
	call l0586
	ld de,l04bc
	ld ix,l04bd
	ld (ix+#00),#01
	ld (ix+#01),#00
	ld b,#0a
.l0529
	ld a,(de)
	cp #00
	jr z,l0541
	and (ix+#00)
	jr nz,l054d
	inc (ix+#01)
	rl (ix+#00)
	ld a,(ix+#01)
	cp #08
	jr nz,l0529
.l0541
	ld (ix+#00),#01
	ld (ix+#01),#00
	dec de
	djnz l0529
	ret
.l054d
	ld a,b
	sub #01
	and #0f
	rla
	rla
	rla
	ld b,a
	ld a,(ix+#01)
	and #07
	add b
	ld hl,l04bf
	ld c,a
	ld b,#00
	add hl,bc
	ld a,(hl)
	cp #61
	jr c,l056e
	cp #7b
	jr nc,l056e
	sub #20
.l056e
	ld (l04a6),a
	ld a,(l04b5)
	bit 5,a
	jr z,l057d
	ld a,#27
	ld (l04a7),a
.l057d
	bit 7,a
	ret z
	ld a,#0e
	ld (l04a7),a
	ret
.l0586
	ld bc,#f40e
	out (c),c
	ld b,#f6
	in a,(c)
	and #30
	ld c,a
	or #c0
	out (c),a
	out (c),c
	inc b
	ld a,#92
	out (c),a
	push bc
	set 6,c
.l05a0
	ld b,#f6
	out (c),c
	ld b,#f4
	in a,(c)
	ld b,(hl)
	ld (hl),a
	and b
	cpl
	ld (de),a
	inc hl
	inc de
	inc c
	ld a,c
	and #0f
	cp #0a
	jr nz,l05a0
	pop bc
	ld a,#82
	out (c),a
	dec b
	out (c),c
	ret
	db #c9,#00,#00,#0b,#17,#1a,#1e,#1a
	db #17,#0d,#17,#1a,#0e,#17,#1a,#04
	db #13,#17,#1c,#17,#13,#07,#13,#17
	db #0e,#13,#17,#01,#10,#16,#06,#19
	db #1f,#0a,#1c,#19,#06,#12,#1c,#0b
	db #17,#1a,#1e,#1a,#17,#0d,#17,#1a
	db #0e,#17,#1a,#05,#17,#1a,#20,#1a
	db #17,#0d,#17,#1a,#0e,#17,#1a,#0b
	db #17,#1a,#1e,#1a,#17,#0e,#17,#1a
	db #17,#19,#1a,#0d,#16,#19,#1c,#19
	db #16,#01,#19,#1c,#1f,#1c,#19,#06
	db #1c,#1f,#22,#1f,#1c,#01,#16,#13
	db #10,#0d,#07,#06,#09,#0a,#0b,#1a
	db #17,#09,#1a,#17,#07,#1a,#17,#06
	db #09,#0a,#0b,#1a,#17,#09,#1a,#17
	db #07,#1a,#17,#06,#1e,#1e,#1e,#1e
	db #1e,#1e,#3f,#35,#1e,#1f,#23,#1e
	db #1f,#23,#1e,#1f,#23,#1e,#1f,#23
	db #1c,#1e,#1f,#1c,#1e,#1f,#1c,#1e
	db #1f,#1c,#1e,#1f,#19,#1a,#1c,#19
	db #1a,#1c,#19,#1a,#1c,#19,#1a,#1c
	db #1e,#1f,#23,#1e,#1f,#23,#1e,#1f
	db #23,#1e,#1f,#23,#1a,#1d,#20,#1a
	db #1d,#20,#1a,#1d,#20,#1a,#1d,#20
	db #1e,#1f,#23,#1e,#1f,#23,#1e,#1f
	db #23,#1e,#1f,#23,#1e,#1f,#22,#1e
	db #1f,#22,#1f,#22,#25,#1f,#22,#25
	db #22,#25,#28,#22,#25,#28,#1f,#1c
	db #19,#1f,#1c,#19,#12,#12,#12,#17
	db #17,#17,#15,#15,#15,#13,#13,#13
	db #12,#12,#12,#17,#17,#17,#15,#15
	db #15,#13,#13,#13,#12,#12,#12,#12
	db #22,#12,#22,#12,#1a,#19,#17,#35
	db #35,#23,#35,#35,#1e,#23,#1e,#1f
	db #1f,#1e,#13,#35,#35,#23,#35,#35
	db #1f,#23,#1f,#1c,#1c,#1a,#16,#16
	db #16,#35,#19,#17,#16,#19,#19,#1a
	db #23,#1f,#17,#35,#35,#35,#35,#35
	db #35,#35,#35,#23,#20,#1e,#1d,#1e
	db #1d,#35,#35,#35,#35,#35,#35,#23
	db #23,#23,#17,#1e,#1e,#1a,#1a,#1a
	db #17,#35,#35,#1c,#1c,#1c,#16,#19
	db #1c,#19,#13,#10,#13,#10,#1f,#16
	db #16,#19,#16,#1c,#25,#22,#1f,#19
	db #0d,#1c,#16,#12,#15,#16,#17,#0e
	db #0b,#15,#0e,#0b,#13,#0e,#0b,#17
	db #15,#16,#17,#0e,#0b,#15,#0e,#0b
	db #13,#0e,#0b,#17,#22,#22,#22,#22
	db #22,#22,#17,#23,#1e,#17,#23,#1e
	db #17,#23,#1e,#1e,#23,#1e,#17,#23
	db #1f,#17,#23,#1f,#17,#23,#1f,#1c
	db #23,#1f,#16,#19,#1f,#25,#22,#1c
	db #16,#22,#22,#25,#22,#1f,#17,#23
	db #1e,#17,#23,#1e,#17,#23,#1e,#1e
	db #23,#1e,#14,#23,#1d,#14,#23,#1d
	db #14,#23,#1d,#20,#23,#1d,#17,#23
	db #1e,#17,#23,#1e,#17,#23,#1e,#0b
	db #23,#1e,#35,#12,#12,#12,#12,#12
	db #16,#16,#16,#16,#16,#16,#19,#19
	db #19,#19,#19,#19,#1c,#1c,#1c,#16
	db #1c,#17,#12,#15,#16,#17,#0e,#0b
	db #15,#0e,#0b,#13,#0e,#0b,#12,#15
	db #16,#17,#0e,#0b,#15,#0e,#0b,#13
	db #0e,#0b,#12,#19,#16,#10,#07,#07
	db #06,#3f,#35,#23,#1f,#1e,#23,#1f
	db #1e,#23,#1f,#1e,#23,#1f,#1e,#1f
	db #1e,#1c,#1f,#1e,#1c,#1f,#1e,#1c
	db #1f,#1e,#1c,#1c,#1a,#19,#1c,#1a
	db #19,#1c,#1a,#19,#1c,#1a,#19,#23
	db #1f,#1e,#23,#1f,#1e,#23,#1f,#1e
	db #23,#1f,#1e,#20,#1d,#1a,#20,#1d
	db #1a,#20,#1d,#1a,#20,#1d,#1a,#23
	db #1f,#1e,#23,#1f,#1e,#23,#1f,#1e
	db #23,#1f,#1e,#22,#1f,#1e,#22,#1f
	db #1e,#25,#22,#1f,#25,#22,#1f,#28
	db #25,#22,#28,#25,#22,#1f,#1c,#19
	db #13,#10,#16,#10,#16,#17,#12,#1e
	db #12,#19,#1e,#1a,#17,#1e,#35,#1e
	db #35,#35,#12,#1e,#12,#19,#1e,#1a
	db #17,#1e,#35,#16,#16,#16,#16,#19
	db #19,#35,#23,#35,#35,#26,#35,#23
	db #23,#35,#35,#26,#25,#23,#1c,#35
	db #35,#28,#35,#25,#25,#35,#35,#28
	db #26,#25,#22,#35,#35,#25,#35,#22
	db #22,#35,#35,#25,#23,#22,#23,#35
	db #35,#26,#35,#23,#23,#35,#35,#26
	db #25,#23,#20,#35,#35,#26,#35,#23
	db #23,#35,#35,#26,#25,#23,#23,#35
	db #35,#26,#35,#23,#23,#35,#35,#26
	db #25,#23,#22,#1f,#1e,#25,#1f,#1e
	db #25,#22,#1f,#19,#22,#1f,#1c,#19
	db #22,#1c,#19,#16,#13,#10,#0d,#13
	db #10,#16,#19,#35,#35,#12,#1e,#12
	db #0d,#1e,#1a,#1f,#1e,#1a,#19,#35
	db #35,#12,#1e,#12,#19,#1e,#1a,#1f
	db #1e,#1c,#19,#12,#16,#19,#16,#12
	db #1c,#23,#26,#25,#23,#17,#35,#35
	db #35,#35,#35,#35,#35,#23,#26,#25
	db #23,#17,#35,#35,#35,#35,#35,#35
	db #35,#22,#28,#26,#25,#16,#35,#35
	db #35,#35,#35,#35,#35,#23,#26,#25
	db #23,#17,#35,#35,#35,#35,#35,#35
	db #35,#20,#26,#25,#23,#35,#35,#35
	db #35,#35,#35,#35,#35,#23,#26,#25
	db #23,#35,#35,#17,#35,#35,#35,#35
	db #35,#22,#26,#25,#22,#35,#35,#25
	db #28,#26,#25,#35,#35,#25,#23,#23
	db #22,#35,#35,#25,#22,#1f,#1e,#1e
	db #1e,#1e,#35,#35,#23,#23,#23,#21
	db #21,#21,#1f,#21,#1f,#1e,#1e,#1e
	db #23,#23,#23,#21,#21,#21,#1f,#21
	db #1f,#1e,#17,#0b,#17,#0b,#17,#0a
	db #3f,#00,#b4,#00,#00,#00,#00
;
.game_name
	db "Mystery of Arkham Manor",0
.game_year
	db "1987",0
.game_publisher
	db "Melbourne House",0
.music_author
	db "",0
.music_comment
	db "",0

	read "music_end_v1_0.asm"
